# Deque
from collections import deque

q = deque(range(5))    # 生成队列q，q=deque([0, 1, 2, 3, 4])
q.append(5)            # 队列q右侧压入5，q=deque([0, 1, 2, 3, 4, 5])
q.appendleft(6)        # 队列q左侧压入6，q=deque([6, 0, 1, 2, 3, 4, 5])
print (q)              # 打印队列q，输出结果：deque([6, 0, 1, 2, 3, 4, 5])
print (q.pop())        # 队列q右侧推出5，q=deque([6, 0, 1, 2, 3, 4])，并打印，输出结果：5
print (q.popleft())    # 队列q左侧推出6，q=deque([0, 1, 2, 3, 4])，并打印，输出结果：6

# rotate是队列的旋转操作，Right rotate(正参数)是将右端的元素移动到左端，而Left rotate(负参数)则相反。
print (q.rotate(3))    # 队列q正旋3个元素，并打印，输出结果：None
print (q)              # 打印队列q，输出结果：deque([2, 3, 4, 0, 1])
print (q.rotate(-1))   # 队列q负旋1个元素，并打印，输出结果：None
print (q)              # 打印队列q，输出结果：deque([3, 4, 0, 1, 2]))

# deque([6, 0, 1, 2, 3, 4, 5])
# 5
# 6
# None
# deque([2, 3, 4, 0, 1])
# None
# deque([3, 4, 0, 1, 2])